/**
 * author:Administrator
 * date:2015/8/4
 * desc:for elastic-search study
 */


'use strict';

var Router = require('koa-router');
let config = require('../../../config/config.js');
let daoDispatcher = require('../../../dao/news.js');
console.log('router:' + config.baseUrl + '/v2/news');
var router = new Router({
    prefix: config.baseUrl + '/v2/news'
});
module.exports = router.routes();

/**
 * 添加一个news
 * post /api/v2/news/
 {
    "title":"xxx",
    "content":"xxx"
 }
 */
router.post('/', function*() {
    let result = yield daoDispatcher.addOne(this.request.inParams);
    this.body = result;
});

/**
 * 添加多个
 * post /api/v2/news/batch
 {
 "中国教师赴英国进行中国式教学将学生训哭":"称英国学生缺乏进取心，懒散无纪律，原因是英国高福利制度。",
 "气象台发布高温黄色预警 南方及新疆局地超35℃":"新疆南疆盆地、吐鲁番盆地、四川、重庆、江南大部迎高温。",
 "偷渡者控诉“圣战”：有人造谣回国会被处死":"偷渡人员控诉迁徙圣战骗局，称有人曾造谣“回国会被处死”。",
 "男子坐17年冤狱获赔160万 媒婆提亲踏破门":"24岁时被认定为嫌犯，42岁无罪获释，获160万元赔偿。",
 "澳洲政府被指不够重视中国游客 遭多方谴责":"媒体称澳洲政府在讨好中国游客方面不给力，落后于其他国家。",
 "韩媒:孙杨400米夺冠不足喜 不如伦敦或过巅峰":"韩媒指出，孙杨之所以能卫冕，朴泰桓没参赛是重要原因。",
 "媒体解读：王岐山为何把党纪和国法拆分":"在打虎强震慑的强悍落子中，更大的布局业已隐约可见。",
 "云南原副省长沈培平今在京受审 被控受贿1600万":"被控为云南当地企业老板“谋福利”，收受贿赂1600余万。",
 "国内油价调价窗口今日打开 下调趋势基本已定":"调价幅度最高或达190元/吨，多地汽油将回归“5”时代。",
 "男子假冒中纪委办网站骗取23万元 受审当庭翻供":"私自建立预防犯罪法治监督调查网站，谎称认识领导人亲属",
 "女子患绝症将房产留给男友 其父母起诉索房款":"房产系绝症女与男友共同出资，法院未支持其父母的申请。"
 }
 */
router.post('/batch', function*() {
    let list = [];
    let inParams = this.request.inParams;
    for (var t in inParams) {
        list.push({title: t, content: inParams[t]});
    }
    let result = yield daoDispatcher.addMany(list);
    this.body = result;
});


/**
 * 统计article_content字段中的 top(100,eg)项记录
 * get /api/v2/news/termfreq?top=100&field=content
 */
router.get('/termfreq', function*() {
    let field = this.query.field || 'content';
    let topNum = this.query.top;
    if (!topNum) topNum = 100;
    else topNum = Number(topNum);
    let result = yield daoDispatcher.termFreq(field, topNum);
    this.body = result;
});

/**
 * get /api/v2/article/qsearch?q=foo
 */
router.get('/qSearch', function*() {
    let q = this.query.q;
    if (q === undefined) {
        this.status = 400;
        this.body = 'must have q, example get /api/v2/article/qsearch?q=foo';
    }

    let result = yield daoDispatcher.qSearch(q);
    this.body = result;
});